improvement(landing): scope navbar/footer to (shell) route group, align scoped 404s with root#4246
Conversation
…p, align scoped 404s with root Move integrations and models page routes into a `(shell)` route group so the Navbar+Footer layout wraps pages but not `not-found.tsx`. This lets scoped 404s render the same `<AuthBackground>` + Navbar treatment as the root `/` 404, instead of appearing inside the landing CTA footer. Extract the shared 404 markup into `<NotFoundView>` so root, integrations, and models 404s share a single source of truth. Route URLs are unchanged — route groups are URL-transparent. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub. |
PR SummaryMedium Risk Overview Moves the integrations index/detail pages under an Reviewed by Cursor Bugbot for commit 4bbf211. Configure here. |
Greptile SummaryThis PR restructures the landing-surface routing by moving Confidence Score: 5/5Safe to merge — structural rename with no logic changes, correct import path updates, and clean deduplication. All changed files are either pure renames (100% similarity) or trivial delegations to the new NotFoundView component. Import paths are correctly updated to @/ aliases after the move. No P0/P1 findings exist. No files require special attention. Important Files Changed
Flowchart%%{init: {'theme': 'neutral'}}%%
flowchart TD
A["(landing)/layout.tsx\nminimal wrapper"] --> B["integrations/"]
A --> C["models/"]
B --> B1["(shell)/layout.tsx\nNavbar + Footer"]
B --> B2["not-found.tsx\nNotFoundView"]
B1 --> B3["(shell)/page.tsx\n/integrations"]
B1 --> B4["(shell)/[slug]/page.tsx\n/integrations/:slug"]
C --> C1["(shell)/layout.tsx\nNavbar + Footer"]
C --> C2["not-found.tsx\nNotFoundView"]
C1 --> C3["(shell)/page.tsx\n/models"]
C1 --> C4["(shell)/[provider]/page.tsx\n/models/:provider"]
C1 --> C5["(shell)/[provider]/[model]/page.tsx\n/models/:p/:m"]
NF["app/not-found.tsx\nNotFoundView"] --> NFC["NotFoundView\nNavbar + AuthBackground\nno Footer"]
B2 --> NFC
C2 --> NFC
style NFC fill:#1a1a2e,color:#fff
style B2 fill:#162032,color:#fff
style C2 fill:#162032,color:#fff
style NF fill:#162032,color:#fff
Reviews (2): Last reviewed commit: "fix(landing): convert relative imports t..." | Re-trigger Greptile |
…hell) page Build failed because the move into the (shell) route group invalidated relative `./components/...` and `./data/...` imports. CLAUDE.md mandates absolute imports throughout — switching these resolves the Turbopack build errors. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
@greptile |
|
@cursor review |
There was a problem hiding this comment.
✅ Bugbot reviewed your changes and found no new issues!
Comment @cursor review or bugbot run to trigger another review on this PR
Reviewed by Cursor Bugbot for commit 4bbf211. Configure here.
Summary
(shell)route group so the Navbar+Footer layout wraps pages but notnot-found.tsx. Route URLs are unchanged — route groups are URL-transparent.<NotFoundView>component (Navbar +<AuthBackground>+ centered "Page not found" + return-home link) used by the rootapp/not-found.tsxand the scoped(landing)/integrations/not-found.tsxand(landing)/models/not-found.tsx./models/foo/bar/bazand/integrations/xyznow render the same 404 treatment as/rand(root). Previously they sat inside the landing CTA footer with no decorative background.Why
Before this, scoped 404s rendered through
IntegrationsLayout/ModelsLayout, which include the landing<Footer>("What should we get done?" CTA). That made invalid routes under/integrations/*and/models/*look visually inconsistent with/randand any other top-level 404.The Next.js-idiomatic fix is to scope the Navbar+Footer shell to the actual pages via a
(shell)route group, leavingnot-found.tsxto render under just the minimal(landing)/layout.tsx— free to wrap itself in the same<AuthBackground>+ Navbar treatment as the root.Test plan
/integrations/xyz-not-realand/models/anthropic/not-real— expect the same look as/rand(Navbar + grid background + centered "Page not found" + Return to Home, no footer)/integrations,/integrations/[valid-slug],/models,/models/[provider],/models/[provider]/[model]— expect Navbar + Footer shell still present, content unchanged/models/opengraph-image,/models/[provider]/opengraph-image,/models/[provider]/[model]/opengraph-image